Flash memory has become increasingly popular in recent years. A typical flash memory comprises a memory array having a large number of memory cells arranged in blocks. Each of the memory cells may be fabricated as a field-effect transistor having a control-gate (or a word line) and a floating gate. The floating gate is capable of holding charges and is separated from source and drain regions contained in a substrate by a layer of thin oxide. Each of the memory cells can be electrically charged by injecting electrons from the drain region through the oxide layer onto the floating gate. The charges can be removed from the floating gate by tunneling the electrons to the source through the oxide layer during an erase operation. The data in a memory cell is thus determined by the presence or absence of a charge on the floating gate.
Flash memory cells are arranged as rows and columns to form flash memory arrays. A plurality of bits in a same row can be programmed in the same cycle. A charge pump is used to provide a high voltage and programming currents for programming the plurality of bits. The size of the charge is proportional to the number of bits that are programmed in the same programming cycle. To speed up the programming operation, more bits may be programmed in the same cycle. However, this requires the charge pump to have the capability to provide a greater current. As a result, there is a greater chip-area overhead if more bits are to be programmed in the same programming cycle.